﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//int main()
//{
//	int arr[10] = { 0,1,2,3,4,5,6,7,8,9};
//	int* p = &arr[0];
//	printf("%d\n", arr[2]);
//	printf("%d\n", *(p + 2));
//	return 0;
//}

//int main()
//{
//	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
//	printf("%d ", *arr);
//	return 0;
//}

//int main()
//{
//	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
//	int x = 0;
//	x = *(arr + 4) - *(arr + 1);
//	printf("%d\n", x);
//	int arr_ch[6] = { 'a','b','c','d','e','f' };
//	int y = 0;
//	y = *(arr_ch + 4) - *(arr_ch + 1);
//	printf("%d\n", y);
//	return 0;
//}


//int my_strlen(char* s)
//{
//	char *x = s;
//	while(*x !=  '\0')
//		x++;
//	return x - s;
//}
//
//int main()
//{
//	printf("%d", my_strlen("abcd"));
//	return 0;
//}



//指针的关系运算 
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int* p = &arr[0];
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	while (p < arr + sz) //指针的⼤⼩⽐较 
//	{
//		printf("%d ", *p);
//		p++;
//	}
//	return 0;
//}



//int main()
//{
//	int* p0 = NULL;
//	int* p1 = 0;
//	int* p2;
//	printf("%p\n", p0);
//	printf("%p\n", p1);
//	printf("%p\n", p2);
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int arr[10] = { 0 };
//	int* p = &arr[0];
//	int i = 0;
//	for (i = 0; i <= 11; i++)
//	{
//		//当指针指向的范围超出数组arr的范围时，p就是野指针 
//		*(p++) = i;
//	}
//	return 0;
//}


#include <stdio.h>
int* test()
{
	int n = 100;
	return &n;
}
int main()
{
	int* p = test();
	printf("%p\n", p);
	printf("%d\n", *p);
	return 0;
}